namespace GGameFramework.Core.Pool
{
    /// <summary>
    /// 对象池策略接口
    /// </summary>
    public interface IPoolingStrategy
    {
        /// <summary>
        /// 处理对象池容量逻辑
        /// </summary>
        /// <param name="pool">关联的对象池</param>
        void HandlePoolSize(IObjectPool pool);
        
        /// <summary>
        /// 检查是否应该销毁对象
        /// </summary>
        /// <param name="pool">对象池</param>
        /// <param name="currentCount">当前池中对象数量</param>
        /// <returns>是否应该销毁对象</returns>
        bool ShouldDestroyObject(IObjectPool pool, int currentCount);
    }
}